import 'dart:async';
import 'dart:developer';
import 'dart:io';
import 'package:get/get.dart';
import 'package:ball_lion/module/mine/login_logic.dart';
import 'package:ball_lion/resources/colours.dart';
import 'package:ball_lion/server/api/user_api.dart';
import 'package:ball_lion/server/http/request_header.dart';
import 'package:ball_lion/utils/app_config.dart';
import 'package:ball_lion/utils/constant.dart';
import 'package:ball_lion/utils/method_channel_utils.dart';
import 'package:ball_lion/routes/routes.dart';
import 'package:ball_lion/utils/sp_utils.dart';
import 'package:ball_lion/utils/toast_utils.dart';
import 'package:ball_lion/utils/user.dart';
import 'package:ball_lion/utils/utils.dart';
// import 'package:umeng_common_sdk/umeng_common_sdk.dart';
// import 'package:umeng_verify_sdk/umeng_verify_sdk.dart';

class UmengService extends GetxService {
  // final _androidAppkey = '645c95c67dddcc5bad477357';
  // final _iosAppkey = '633418ef88ccdf4b7e3c9138';
  // final _androidTestkey = '6385cbfa88ccdf4b7e73d5b3';
  // final _iosTestkey = '6385ccdf88ccdf4b7e73d6fa';
  // final _loginAndroidSecret =
  //     'nZDjwIfRfRxVBABCY7JPxdaUBMCOaybU3gs0+wUsgIhwFCUlgFqWDy17SQ/zlVeSdL1fExdOs6XrWpE/xly8AFkK9FU8dxDvGl7mjpgaXmJ41bX3qFiGHOF/TmsdQbUEL+LYO+IbbVlRTqsftokHo4DK98M7hMXz//+ApqYyLLTbwM6P85U59Z3nxo0oLf1TCX+65GG8/YlM6f0F9QdAxiPhGmSjImvPTtxng8WFovotHHj6G27eUQbymfaGmeJX3DlOiustoyRxOxH3jCCy5/KLfC1l/ni+jvkZ4IrZp22khAJ9u/QPKoH5P6yS62DE';
  // final _loginIosSecret =
  //     'buNMYdfqG5ZI/C6xIAYniC3CPKThnzvRabwO8U1fhru07pRHMSXRpFqGwKotyDGXgDDRKHBT/KF+E06LjMC0DGBBF+bkzeJ+cLgW3KKQ0ezxlXDD8RTOiro7Cpnl3q7vYn8i9sRzP1OBxvpEJN95IW7Gl1Irg3NQL7/az4cTATOwAr/61CnQhvbZYi/Tvb4xYu1/Vz3SNvYd18G58IQBIYDZRape3kHnRn6l2+Gf1dKR8OXLfFwuWjnN855lFpOBkPkIu37eM52kEUKnmCQaxg==';
  // final _loginIosSecret =
  //     'lScVteMwKwvHcC1o3C/nHGekVLMBHoSDYkh54wMD+sWxZrAls6+4u0yRME7T+JhBRJK7Mmp2Gx/A/Lp7RAmJFkw4FWC0whOV9C4zotJWHt69sRHO03Gpnh1ysS4ThPQxD8tIG4qnA5LTrsb8eePnCTG+YTe+N2PknW4i6QmbZolu2ymj7pCIII8lUQp6ENN2tP3AOW+KNoJtpjdtbDlPZyOILaabUTN/h8PxajYc9t+gpSw8sNu2ZA05s0yNWjNVkqBt565Cv2Q=';
  //充值初始来源记录
  var payOriginRoute = '';
  static Completer completer = Completer();

  Future<UmengService> init() async {
    return this;
  }

  Future initUm() async {
    String channel = 'Umeng';
    // String iosKey = _iosTestkey;
    // String androidKey = Constant.umAndroidKey;
    if (!AppConfig.config.isDebug) {
      channel = RequestHeader.channel;
      //   iosKey = _iosAppkey;
      //   androidKey = _androidAppkey;
    }

    // await UmengCommonSdk.initCommon(
    //     Constant.umAndroidKey, Constant.umIosKey, channel);
    // UmengCommonSdk.setPageCollectionModeManual();
    // UmengVerifySdk.accelerateLoginPageWithTimeout(3);
  }

  // void signIn() {
  //   if (User.info != null) {
  //     UmengCommonSdk.onProfileSignIn(User.info!.id!);
  //   }
  // }

  Future completeLogin() async {
    if (!completer.isCompleted) {
      completer.complete();
      completer = Completer();
    }
  }

  Future login(LoginType type, {String? userId, bool dialog = false}) async {
    // if (Platform.isAndroid) {
      // UmengVerifySdk.register_android();
    // }
    // final result = await UmengVerifySdk.setVerifySDKInfo(
    //     Constant.umAndroidSecret, Constant.umIosSecret);
    // log('result: $result');
    // if (Platform.isIOS) {
      // UmengVerifySdk.checkEnvAvailableWithAuthType_ios(
      //         'UMPNSAuthTypeLoginToken')
      //     .then((value) {
      //   log('$value');
      // });
    // } else {
      // UmengVerifySdk.checkEnvAvailable_android(UMEnvCheckType.type_login);
      // UmengVerifySdk.setTokenResultCallback_android((result) {
      //   log('$result');
      // });
    // }

    // log('$result');
    // UMCustomModel uiConfig = UMCustomModel();
    // var Colours;
    // uiConfig.autoHideLoginLoading = false;
    // uiConfig.navColor = Colours.transparent.value;
    // uiConfig.backgroundImage = "um_back";
    // uiConfig.navTitle = [' ', Colours.transparent.value, 15];
    // uiConfig.navBackImage = 'um_close';
    // uiConfig.logoImage = 'um_logo';
    // uiConfig.logoIsHidden = false;
    // uiConfig.sloganIsHidden = true;
    // uiConfig.sloganText = ['', Colours.text.value, 0];
    // uiConfig.numberColor = Colours.text.value;
    // uiConfig.numberFont = 20;
    // uiConfig.loginBtnText = [
    //   type == LoginType.login ? '本机号码一键登录' : '本机号码一键绑定',
    //   Colours.white.value,
    //   16
    // ];
    // uiConfig.loginBtnBgImg_android = 'um_login_bg';
    // uiConfig.loginBtnBgImgs_ios = ['um_login_bg', 'um_login_bg', 'um_login_bg'];
    //
    // uiConfig.checkBoxImages = ['um_unselect', 'um_select'];
    // uiConfig.privacyOne = ['《服务协议》', Constant.serviceAgreementUrl];
    // uiConfig.privacyTwo = ['《隐私政策》', Constant.privacyPolicyUrl];
    // uiConfig.privacyConectTexts = ['以及', '和'];
    // uiConfig.privacyOperatorPreText = '《';
    // uiConfig.privacyOperatorSufText = '》';
    // uiConfig.changeBtnTitle = [
    //   type == LoginType.login ? '短信登录' : '短信绑定',
    //   Colours.text.value,
    //   15
    // ];

    double screenWidth = Get.width;
    if (Platform.isIOS) {
      // uiConfig.checkBoxImageEdgeInsets_ios = [0, 2, 4, 2];
      // uiConfig.navBackButtonFrame = [16, 16, 24, 24];
      // uiConfig.logoFrame = [screenWidth / 2 - 60, 50, 120, 60];
      // uiConfig.numberFrame = [screenWidth / 2 - 55, 420, 0, 0];
      // // uiConfig.sloganFrame = [screenWidth / 2 - 73, 190, 150, 20];
      // // uiConfig.privacyFrame = [10, 270, screenWidth - 20, 60];
      // uiConfig.loginBtnFrame = [(screenWidth - 335) / 2, 510, -1, 335, 48];
      // uiConfig.changeBtnFrame = [screenWidth / 2 - 35, 570, 70, 25];
      // uiConfig.checkBoxWH = 24;
    } else {
      // if (dialog) {
      //   uiConfig.contentViewFrame = [
      //     -1,
      //     Get.window.physicalSize.height,
      //     Get.width,
      //     377
      //   ];
      //   uiConfig.navBackButtonFrame = [16, 16, 24, 24];
      //   uiConfig.prefersStatusBarHidden = true;
      //   uiConfig.logoFrame = [0, -1, 80, 80];
      //   uiConfig.alertCloseItemFrame_ios = [16, 16, 24, 24];
      //   uiConfig.numberFrame = [0, -1, 203, -1];
      //   uiConfig.loginBtnFrame = [0, -1, 135, 315, 48];
      //   uiConfig.changeBtnFrame = [-1, 94, -1, -1];
      //   uiConfig.privacyFrame = [-1, -1, 20, -1];
      //   uiConfig.checkBoxWH = 24;
      // } else {
      //   uiConfig.navBackButtonFrame = [-1, -1, 21, 21];
      //   uiConfig.logoFrame = [50, -1, 60, 60];
      //   uiConfig.numberFrame = [0, 420, -1, -1];
      //   uiConfig.sloganFrame = [180, -1, -1, -1];
      //   // uiConfig.privacyFrame = [0, 270, -1, -1];
      //   uiConfig.loginBtnFrame = [0, 468, -1, 335, 48];
      //   uiConfig.changeBtnFrame = [536, -1, -1, -1];
      //   uiConfig.checkBoxWH = 24;
      // }
    }

    // uiConfig.navIsHidden = true;
    // uiConfig.sloganText = ['123'];
    // UmengVerifySdk.getLoginTokenWithTimeout(10, uiConfig);
    // UmengVerifySdk.getVerifyTokenWithTimeout_ios(10)
    //     .then((value) {
    //   log('$value');
    // });

    // UmengVerifySdk.getLoginTokenCallback((result) async {
    //   // UmengVerifySdk.hideLoginLoading();
    //   log('$result');
    //   if (result['resultCode'] == '700002') {
    //     bool isChecked = result['isChecked'];
    //     if (!isChecked) {
    //       if (Platform.isIOS) {
    //         MethodChannelUtils.showHudWithMsg('请同意服务条款');
    //       }
    //     }
    //   } else if (result['resultCode'] == '700001') {
    //     UmengVerifySdk.quitLoginPage_android();
    //   } else if (result['resultCode'] == '600000') {
    //     Utils.onEvent('wode_yjdl_dl');
    //     if (type == LoginType.login) {
    //       //成功
    //       await quickLogin(result['token']);
    //     } else {
    //       final data = await UserApi.bindPhone(
    //           tokenCode: result['token'], userId: userId ?? User.auth!.userId);
    //       if (data != null) {
    //         UmengVerifySdk.cancelLoginVCAnimated(true);
    //         SpUtils.loginAuth = data;
    //         User.doLogRefresh(isLogin: true);
    //         Get.until((route) => Get.currentRoute == Routes.navigation);
    //         // Toast.text('绑定成功');
    //       } else {
    //         UmengVerifySdk.quitLoginPage_android();
    //         // Toast.text('绑定失败，请重新绑定');
    //       }
    //     }
    //   } else if (result['resultCode'] == '600015') {
    //     UmengVerifySdk.quitLoginPage_android();
    //     Toast.text('登录失败，请重新登录');
    //   } else if(result['resultCode'] == '600017') {
    //     Get.toNamed(Routes.login);
    //   }
    // });
    // UmengVerifySdk.setTokenResultCallback_android((result) async {
    //   String code = result['code'];
    //   log('result $result');
    //   if (code == '700001') {
    //     UmengVerifySdk.quitLoginPage_android();
    //     Get.toNamed(Routes.login);
    //     // onPressed();
    //   } else if (code == '600000') {
    //     Utils.onEvent('wode_yjdl_dl');
    //     if (type == LoginType.login) {
    //       await quickLogin(result['token']);
    //       completer.complete();
    //     } else {
    //       final data = await UserApi.bindPhone(
    //           tokenCode: result['token'], userId: userId ?? User.auth!.userId);
    //       if (data != null) {
    //         UmengVerifySdk.quitLoginPage_android();
    //         SpUtils.loginAuth = data;
    //         await User.doLogRefresh(isLogin: true);
    //         completer.complete();
    //         Get.until((route) => Get.currentRoute == Routes.navigation);
    //       } else {
    //         completer.complete();
    //         UmengVerifySdk.quitLoginPage_android();
    //         UmengVerifySdk.hideLoginLoading();
    //       }
    //     }
    //   } else if (code == '600002') {
    //     UmengVerifySdk.quitLoginPage_android();
    //   } else if (code == '700000') {
    //     UmengVerifySdk.quitLoginPage_android();
    //   } else if (code == '600004' ||
    //       code == '600005' ||
    //       code == '600007' ||
    //       code == '600008' ||
    //       code == '600009' ||
    //       code == '600010' ||
    //       code == '600011' ||
    //       code == '600012' ||
    //       code == '600013' ||
    //       code == '600014' ||
    //       code == '600015' ||
    //       code == '600017' ||
    //       code == '600021' ||
    //       code == '600025') {
    //     // UmengVerifySdk.hideLoginLoading();
    //     UmengVerifySdk.quitLoginPage_android();
    //     Toast.text('调用一键登录失败：${result['msg']}\n请使用短信验证码方式登录');
    //     await Get.toNamed(Routes.login);
    //   } else {
    //     // UmengVerifySdk.hideLoginLoading();
    //   }
    // });
  }

  Future quickLogin(String token) async {
    final result = await UserApi.login(token: token);
    if (result != null) {
      if (Platform.isIOS) {
        // UmengVerifySdk.cancelLoginVCAnimated(true);
      } else {
        // UmengVerifySdk.quitLoginPage_android();
      }
      SpUtils.loginAuth = result;
      await User.doLogRefresh(isLogin: true);
      if (result.first == true) {
        await Get.toNamed(Routes.myInviter);
      }
      // Get.back();
      // navigator?.pop();
      return result;
    } else {
      // UmengVerifySdk.hideLoginLoading();
      if (Platform.isIOS) {
        MethodChannelUtils.showHudWithMsg('登陆失败');
      }
    }
    return null;
  }
}
